package com.sun.test;

public class MergeArray {
    public static void main(String[] args) {
        /*4.合并数组操作：现有如下一个数组：
        int  oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}
        要求将以上数组中值为0的项去掉，将不为0的值存入一个新的数组，生成的新数组为：
        int newArr [] ={1,3,4,5,6,6,5,4,7,6,7,5}
        思路：确定出不为0的个数，这样可以开辟新数组；从旧的数组之中，取出内容，
        并将其赋给新开辟的数组。*/
        int  oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
        int newArr [] =selectArray(oldArr);
        //打印输出
        for (int i : newArr) {
            System.out.print(i+"\t");
        }

    }

    /**
     * 将数组中为0的项去掉，将不为0的值存入一个新的数组
     * @param arr 原数组
     * @return 去掉为0元素的新数组
     */
    public static  int[] selectArray(int[] arr){
        //1.引入一个计数器，计算数组中元素不为0的个数
        int count=0;
        for (int i : arr) {
            if(i!=0){
                count++;
            }
        }
        //2.创建一个新数组，长度为count
        int[] newArr=new int[count];
        //3.复制不为0的数组到新的数组中
        int size=0;
        for (int i : arr) {
            if(i!=0){
                newArr[size++]=i;
            }
        }
        return newArr;
    }
}
